package com.ruoyi.app.service

import com.ruoyi.app.common.Data
import com.ruoyi.app.common.PageData
import com.ruoyi.app.domain.dto.*
import com.ruoyi.app.domain.vo.*

interface TemplateApiService {


    /**
     * 模板分页列表
     */
    fun templatePage(appTemplateSearchDto: AppTemplateSearchDto): Data<TemplateIndex>

    /**
     * 模板详情
     */
    fun templateDetail(id: Long): Data<TemplateDetailVo>

    /**
     * 模板点赞
     */
    fun templateLike(id: Long): Data<Boolean>

    /**
     * 模板收藏
     */
    fun templateCollect(id: Long): Data<Boolean>

    /**
     * 模板评论
     */
    fun templateComment(appTemplateCommentDto: AppTemplateCommentDto): Data<Boolean>

    /**
     * 模板评论列表
     */
    fun templateCommentPage(templateCommentSearchDto: AppTemplateCommentSearchDto): PageData<AppTemplateCommentVo>

    /**
     * 模板举报
     */
    fun templateReport(appTemplateReportDto: AppTemplateReportDto): Data<Boolean>

    /**
     * 推荐用户作品
     */
    fun recommendUserRecord(appTemplateRecommendDto: AppTemplateRecommendDto): Data<Boolean>


    /**
     * 模板推荐记录数据
     */
    fun templateRecommendData(userRecommendSearchDto: UserRecommendSearchDto): Data<List<StatusType>>


    /**
     * 移除模板推荐
     */
    fun removeTemplateRecommend(ids: String): Data<Boolean>

    /**
     * 我的收藏
     */
    fun myCollectPage(appTemplateSearchDto: AppTemplateSearchDto): Data<PageData<TemplateListVo>>
}